Common Lisp influence

The design and implementation of T began around the same time that the Common Lisp design effort started in earnest. Some of the goals of the projects have been similar; in many cases, the T designers left certain problems for the Common Lisp designers to work out, intentionally ignoring many sticky issues, such as numeric routines, sequences, and arrays, in order to work on other areas.

Now that the Common Lisp language has matured, and portable implementations are approaching reality, two distinct integration projects are in order: importing ideas and facilities from Common Lisp into T (with appropriate customization); and building a Common Lisp emulation package in T.

T itself will never contain Common Lisp as a subset, but it should be suitable as an implementation language for a Common Lisp. This will probably take the form of alternate evaluator, reader, printer, and namespace, together with a Common Lisp-to-T translator.

The following Common Lisp features, at least, should be incorporated into T in some form:
 Arrays.

 Sequences. (These would clean up a lot of the current clutter with the string and vector routines, but introduce a new level of implementation hair.)

 Multiple values. These can be simulated now with continuation-passing, but the syntax is clumsy.

 Numeric routines. Ratios and complexes. Multiple floating point precisions.

 SHIFTF and ROTATEF. (These are generalized versions of T SWAP and EXCHANGE.)

 Hash tables.

 FORMAT enhancements: floating-point formats, etc.

 File dates. Time and date manipulation. Time and date parsing.